package cn.s1995.sloth.admin.api.dto;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * FileUploadConfigDTO
 *
 * @author Lex
 * @description 文件上传配置
 * @date 2024/01/30 11:39
 */
@Data
public class FileUploadConfigDTO implements Serializable {

    /**
     * 图片
     */
    private Image image;
    /**
     * 视频
     */
    private Video video;

    @Data
    public static class Image implements Serializable {
        /**
         * 图片大小限制(单位：M)
         */
        private BigDecimal limit;
        /**
         * 图片规格
         * 200*300
         * 1:1, 2:1, 3:2, 3:4, 4:3, 9:16, 16:9
         */
        private String spec;

        /**
         * 图片质量  参数的范围是 0.0 到 1.0，其中 1.0 表示最高质量（也意味着更大的文件大小）
         */
        private BigDecimal quality;

    }

    @Data
    public static class Video implements Serializable {
        /**
         * 视频大小限制(单位：M)
         */
        private BigDecimal limit;
        /**
         * 是否需要截帧
         */
        private Boolean isScreenshot;
        /**
         * 指定截图时间(单位：ms)
         *  <pre>
         *      指定截图时间。如果设置的截图时间t超过了视频时长，则返回视频的最后一帧。
         *  </pre>
         */
        private Integer screenshotTime;
    }
}
